import {
  Column,
  PrimaryGeneratedColumn,
  UpdateDateColumn,
  CreateDateColumn,
  VersionColumn,
} from 'typeorm';

export abstract class BaseEntity {
  // 主键id
  @PrimaryGeneratedColumn()
  id: number;

  // 创建时间
  @CreateDateColumn({ type: 'timestamp' })
  createdAt: Date;

  @Column({ default: null })
  // 创建人 编号
  creatorId: Number;

  // 更新时间
  @UpdateDateColumn({ type: 'timestamp' })
  updatedAt: Date;

  @Column({ default: null })
  // 更新人编号
  updaterId: Number;

  // 逻辑删除
  @Column({
    default: 0,
    select: false
  })
  delFlag: number;

  // 更新次数
  @VersionColumn({
    select: false,
  })
  version: number;
}